package com.question.business.dept.model.ao;

import com.question.common.annotation.DictValid;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 部门新增参数
 *
 * @author star
 * @since 2023-09-14
 */
@Data
public class DeptAddAO {

    /**
     * 部门名称
     */
    @NotBlank(message = "部门名称不能为空")
    @Size(max = 50, message = "部门名称最长不能超过50位")
    private String deptName;

    /**
     * 上级部门ID
     */
    @Size(max = 20, message = "上级部门ID最长不能超过20位")
    private String parentId;

    /**
     * 显示顺序
     */
    private Integer deptOrder;

    /**
     * 部门负责人
     */
    @Size(max = 20, message = "部门负责人最长不能超过20位")
    private String deptManager;

    /**
     * 启用状态(1:启用2:停用)
     */
    @DictValid(type = "enabled", message = "启用状态(1:启用2:停用)不存在")
    @NotNull(message = "启用状态(1:启用2:停用)不能为空")
    private Integer enabled;

    /**
     * 关联机构
     */
    private List<@NotBlank(message = "机构ID不能为空") @Size(max = 20, message = "机构ID最长不能超过20位") String> orgIds;

    /**
     * 关联岗位
     */
    private List<@NotBlank(message = "岗位ID不能为空") @Size(max = 20, message = "岗位ID最长不能超过20位") String> postIds;

    /**
     * 关联用户
     */
    private List<@NotBlank(message = "用户ID不能为空") @Size(max = 20, message = "用户ID最长不能超过20位") String> userIds;

}